<?php

namespace App\Models;

use MongoDB\BSON\ObjectID;

class HouseInfo extends \stdClass
{
    protected $_id;

    // 这个model类中 包含2个方法  新建  修改 

    /**
     * 新增
     * @FunName: create
     * @Param: * @param array $data  ($data是房屋信息)
     */
    public function create(array $data) {
        $this->_id = new ObjectID();
        foreach ($data as $k=>$v) {
            $this->$k = $v;
        }
        $houseInfo = [];
        foreach ($this as $k=>$v) {
            $houseInfo[$k] = $v;
        }
        return $houseInfo;
    }

    // 先修改会员的其他信息, 然后再修改房屋信息
    /**
     * 修改
     * @FunName: update
     * @Param: * @param array $data  ($data是要修改的房屋信息)
     * @param $id  ($id 是传递过来的客户id)
     */
    public function update(array $data, $id) {
        $customer = Customer::find($id);
        if (!is_null($customer)) {
            $houseInfo = [];
            // 这个得测试下没有houseInfo情况
            $old_houseInfo = $customer->houseInfo;
            if (!is_null($old_houseInfo)) {
                foreach ($old_houseInfo as $v) {
                    if ($data['_id'] == (string)$v['_id']) {
                        unset($data['_id']);
                        $data = array_merge(['_id'=>$v['_id']], $data);
                        array_push($houseInfo, $data);
                    } else {
                        continue;
                    }
                }
                // 如果返回值不为空, 则保存到数据, 如果为空, 说明数据有问题, 显示的有房屋信息id,但是数据库中没有找到此房屋信息id
                return $houseInfo;
            } else {
                // 此客户没有houseInfo属性, 如果传递过来的数据中有houseInfo,则新建房屋信息
                return 1;
            }
        }
    }
}
